home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / games.arc / CHECKING.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  20.0 KB  |  600 lines

  1. 100  SCREEN 0 :WIDTH 80 :CLS :KEY OFF
  2. 110  IF INITIALIZE = 0 THEN GOSUB 1000 : INITIALIZE = 1
  3. 120  '
  4. 130  PRINT "************************************************************
  5. 140  PRINT "* ******************************************************** *
  6. 150  PRINT "* * **************************************************** * *
  7. 160  PRINT "* * **      CHECKBOOK MASTER BY JEFFRY L. BRETZ       ** * *
  8. 170  PRINT "* * **              OF OMAHA,  NEBRASKA               ** * *
  9. 180  PRINT "* * **************************************************** * *
  10. 190  PRINT "* ******************************************************** *
  11. 200  PRINT "************************************************************
  12. 210  '
  13. 220  FOR X = 1 TO 10                      ' INITIALIZE THE SOFT KEYS
  14. 230  KEY X,""
  15. 240  NEXT X
  16. 250  KEY 1, "MENU     "+CHR$(13)
  17. 260  KEY 2, "READ     "+CHR$(13)
  18. 270  KEY 3, "SAVE     "+CHR$(13)
  19. 280  KEY 4, "UPDATE   "+CHR$(13)
  20. 290  KEY 5, "REVIEW   "+CHR$(13)
  21. 300  KEY 10,"TERMINATE"+CHR$(13)
  22. 310  '
  23. 320  LOCATE 25,1  : PRINT "F1 = MENU";     ' REPRINT LINE 25
  24. 330  LOCATE 25,13 : PRINT "F2 = READ";
  25. 340  LOCATE 25,25 : PRINT "F3 = SAVE";
  26. 350  LOCATE 25,37 : PRINT "F4 = UPDATE";
  27. 360  LOCATE 25,51 : PRINT "F5 = REVIEW";
  28. 370  LOCATE 25,65 : PRINT "F10 = TERMINATE";
  29. 380  '
  30. 390  LOCATE 10,1                         ' SET UP MENU SELECTION
  31. 400  PRINT "USING THE SOFT KEYS (F1,F2,F3,F4,F5 AND F10)
  32. 410  PRINT "SELECT THE FUNCTION DESIRED -
  33. 420  PRINT
  34. 430  PRINT "F1  = MENU      = REPRINT THIS MENU PAGE
  35. 440  PRINT
  36. 450  PRINT "F2  = READ      = READ THE OLD MASTER FILE FROM DISK OR CASSETTE
  37. 460  PRINT
  38. 470  PRINT "F3  = SAVE      = SAVE THE NEW MASTER FILE TO DISK OR CASSETTE
  39. 480  PRINT
  40. 490  PRINT "F4  = UPDATE    = UPDATE OR ENTER NEW CHECKS TO THE FILE
  41. 500  PRINT
  42. 510  PRINT "F5  = REVIEW    = PRINTS A LISTING OF THE CATAGORY CODES
  43. 520  PRINT
  44. 530  PRINT "F10 = TERMINATE = END PROGRAM
  45. 540  LOCATE 11,30 :INPUT ">>>>>  ";A$
  46. 550  FOR X = 1 TO 1000 : NEXT
  47. 560  IF A$ = "MENU"   THEN GOTO 100
  48. 570  IF A$ = "READ"   THEN GOTO 2000
  49. 580  IF A$ = "SAVE"   THEN GOTO 3000
  50. 590  IF A$ = "UPDATE" THEN GOTO 6000
  51. 600  IF A$ = "REVIEW" THEN GOTO 4000
  52. 610  IF A$ = "TERMINATE" THEN GOTO 5000
  53. 620  CLS
  54. 630  PRINT "INVALID REQUEST -
  55. 640  PRINT "PLEASE USE ONLY THE SOFT KEYS (F1,F2,F3,F4,F5, AND F10)
  56. 650  PRINT "LOCATED ON THE LEFT HAND SIDE OF THE KEYBOARD
  57. 660  PRINT
  58. 670  PRINT "PRESS ANY KEY TO RETURN TO MENU -
  59. 680  A$ = INKEY$ : IF A$ = "" THEN 680 ELSE 100
  60. 1000  '
  61. 1010  ' *****************************************************************
  62. 1020  ' * ************************************************************* *
  63. 1030  ' * * ********************************************************* * *
  64. 1040  ' * * **                 INITIALIZATION                      ** * *
  65. 1050  ' * * ********************************************************* * *
  66. 1060  ' * ************************************************************* *
  67. 1070  ' *****************************************************************
  68. 1080  '
  69. 1090  '
  70. 1100  ' THE INITIALIZATION PROCESS SETS THE CATAGORY CODES FOR USE
  71. 1110  ' IN THE MAIN PROGRAM.
  72. 1120  '
  73. 1130  ' THESE CODES ARE LOCATED IN LINES 1230 THRU 1720 OF THE LISTING.
  74. 1140  '
  75. 1150  ' IF THIS SELECTION OF CATAGORY CODES DOES NOT MEET YOUR NEEDS, YOU
  76. 1160  ' MAY CHANGE THEM TO FIT ANY SYSTEM YOU HAVE.
  77. 1170  '
  78. 1180  ' PLEASE DO NOT CHANGE THE LENGTHS OF THE QUOTE MARKS AS THIS MAY
  79. 1190  ' MESS UP THE DISPLAY OF THE REVIEW PORTION OF THE PROGRAM.
  80. 1200  '
  81. 1210  OPTION BASE 1
  82. 1220  DEFINT A-Z : DIM A$(50),CATAGORY#(50)
  83. 1230  DIM CHECK%(100)
  84. 1240  DIM DATES$(100)
  85. 1250  DIM AMOUNT#(100)
  86. 1260  DIM CODE%(100)
  87. 1270  DIM DESCRIPT$(100)
  88. 1280  '
  89. 1290  FOR X = 1 TO 100
  90. 1300  CHECK%(X) = 0 : DATES$(X) = SPACE$(5) : AMOUNT#(X) = 0
  91. 1310  CODE%(X) = 0 : DESCRIPT$(X) = SPACE$(20)
  92. 1320  NEXT X
  93. 1330  '
  94. 1340  ' *****************************************************************
  95. 1350  ' * * **               CATAGORY  INITIALIZATION              ** * *
  96. 1360  ' *****************************************************************
  97. 1370  '
  98. 1380  A$( 1) = "01 = DEPOSIT        "
  99. 1390  A$( 2) = "02 = W/D FOR CASH   "
  100. 1400  A$( 3) = "03 = HOUSE/RENT     "
  101. 1410  A$( 4) = "04 = CAR #1         "
  102. 1420  A$( 5) = "05 = CAR #2         "
  103. 1430  A$( 6) = "06 = TELEPHONE      "
  104. 1440  A$( 7) = "07 = GAS/HOME       "
  105. 1450  A$( 8) = "08 = WATER/HOME     "
  106. 1460  A$( 9) = "09 = SEWER/HOME     "
  107. 1470  A$(10) = "10 = ELECTRICITY    "
  108. 1480  A$(11) = "11 = MISC-UTILITIES "
  109. 1490  A$(12) = "12 = GROCERIES      "
  110. 1500  A$(13) = "13 = INSURANCE/HOME "
  111. 1510  A$(14) = "14 = INSURANCE/CAR  "
  112. 1520  A$(15) = "15 = INSURANCE/LIFE "
  113. 1530  A$(16) = "16 = INSURANCE/MEDIC"
  114. 1540  A$(17) = "17 = INSURANCE/DENTL"
  115. 1550  A$(18) = "18 = INSURANCE/BUS  "
  116. 1560  A$(19) = "19 = VISA           "
  117. 1570  A$(20) = "20 = MASTER-CARD    "
  118. 1580  A$(21) = "21 = AMER-EXPRESS   "
  119. 1590  A$(22) = "22 = ENTERTAINMENT  "
  120. 1600  A$(23) = "23 = RESTAURANT     "
  121. 1610  A$(24) = "24 = TUITION        "
  122. 1620  A$(25) = "25 = BOOKS          "
  123. 1630  A$(26) = "26 = COMPUTER EQUIP "
  124. 1640  A$(27) = "27 = SUBSCRIPTIONS  "
  125. 1650  A$(28) = "28 = GAS FOR CAR    "
  126. 1660  A$(29) = "29 = AUTO SERVICE   "
  127. 1670  A$(30) = "30 = TRAVEL EXPENSES"
  128. 1680  A$(31) = "31 = MEDICINES      "
  129. 1690  A$(32) = "32 = GIFTS          "
  130. 1700  A$(33) = "33 = TAXES/FEDERAL  "
  131. 1710  A$(34) = "34 = TAXES/STATE    "
  132. 1720  A$(35) = "35 = CLOTHES        "
  133. 1730  A$(36) = "36 = FURNITURE      "
  134. 1740  A$(37) = "37 =                "
  135. 1750  A$(38) = "38 =                "
  136. 1760  A$(39) = "39 =                "
  137. 1770  A$(40) = "40 =                "
  138. 1780  A$(41) = "41 =                "
  139. 1790  A$(42) = "42 =                "
  140. 1800  A$(43) = "43 = INVESTMENTS    "
  141. 1810  A$(44) = "44 = -NOW- INTEREST "
  142. 1820  A$(45) = "45 = BALANCE FORWARD"
  143. 1830  RETURN
  144. 2000  '
  145. 2010  CLS : SCREEN 0 : WIDTH 80 : LASTENTRY = 0
  146. 2020  '
  147. 2030  PRINT "************************************************************
  148. 2040  PRINT "* ******************************************************** *
  149. 2050  PRINT "* * **************************************************** * *
  150. 2060  PRINT "* * **                 READ INPUT FILE                ** * *
  151. 2070  PRINT "* * **************************************************** * *
  152. 2080  PRINT "* ******************************************************** *
  153. 2090  PRINT "************************************************************
  154. 2100  '
  155. 2110  LOCATE 9,1
  156. 2120  PRINT "ENTER THE MONTH OF THE LAST STATEMENT ":PRINT
  157. 2130  PRINT "JANUARY     = DEFDBL  1 DEFSNG"
  158. 2140  PRINT "FEBUARY     = DEFDBL  2 DEFSNG"
  159. 2150  PRINT "MARCH       = DEFDBL  3 DEFSNG"
  160. 2160  PRINT "APRIL       = DEFDBL  4 DEFSNG"
  161. 2170  PRINT "MAY         = DEFDBL  5 DEFSNG"
  162. 2180  PRINT "JUNE        = DEFDBL  6 DEFSNG"
  163. 2190  PRINT "JULY        = DEFDBL  7 DEFSNG"
  164. 2200  PRINT "AUGUST      = DEFDBL  8 DEFSNG"
  165. 2210  PRINT "SEPTEMBER   = DEFDBL  9 DEFSNG"
  166. 2220  PRINT "OCTOBER     = DEFDBL 10 DEFSNG"
  167. 2230  PRINT "NOVEMBER    = DEFDBL 11 DEFSNG"
  168. 2240  PRINT "DECEMBER    = DEFDBL 12 DEFSNG" : LOCATE 9,40 : PRINT ">>>>  ";
  169. 2250  '
  170. 2260  INPUT MONTH:IF (MONTH > 12) OR (MONTH < 1) THEN CLS : GOTO 2000
  171. 2270  LOCATE 10,40 : CLOSE
  172. 2280  ON MONTH GOTO 2300,2310,2320,2330,2340,2350,2360,2370,2380,2390,2400,2410
  173. 2290  '
  174. 2300  OPEN "JANUARY " FOR INPUT AS #1 : PRINT "READING JANUARY     ";:GOTO 2420
  175. 2310  OPEN "FEBUARY " FOR INPUT AS #1 : PRINT "READING FEBUARY     ";:GOTO 2420
  176. 2320  OPEN "MARCH   " FOR INPUT AS #1 : PRINT "READING MARCH       ";:GOTO 2420
  177. 2330  OPEN "APRIL   " FOR INPUT AS #1 : PRINT "READING APRIL       ";:GOTO 2420
  178. 2340  OPEN "MAY     " FOR INPUT AS #1 : PRINT "READING MAY         ";:GOTO 2420
  179. 2350  OPEN "JUNE    " FOR INPUT AS #1 : PRINT "READING JUNE        ";:GOTO 2420
  180. 2360  OPEN "JULY    " FOR INPUT AS #1 : PRINT "READING JULY        ";:GOTO 2420
  181. 2370  OPEN "AUGUST  " FOR INPUT AS #1 : PRINT "READING AUGUST      ";:GOTO 2420
  182. 2380  OPEN "SEPTEMBE" FOR INPUT AS #1 : PRINT "READING SEPTEMBER   ";:GOTO 2420
  183. 2390  OPEN "OCTOBER " FOR INPUT AS #1 : PRINT "READING OCTOBER     ";:GOTO 2420
  184. 2400  OPEN "NOVEMBER" FOR INPUT AS #1 : PRINT "READING NOVEMBER    ";:GOTO 2420
  185. 2410  OPEN "DECEMBER" FOR INPUT AS #1 : PRINT "READING DECEMBER    ";:GOTO 2420
  186. 2420  'colection point for BASIC DEFDBL CASE DEFSNG STATEMENT
  187. 2430  FOR X = 1 TO 100
  188. 2440  CHECK%(X) = 0 : DATES$(X) = SPACE$(5) : AMOUNT#(X) = 0
  189. 2450  CODE%(X) = 0 : DESCRIPT$(X) = SPACE$(20)
  190. 2460  NEXT X
  191. 2470  INPUT #1,LASTENTRY
  192. 2480  X = 1
  193. 2490  WHILE X < LASTENTRY + 1
  194. 2500  INPUT #1,CHECK%(X),DATES$(X),AMOUNT#(X)
  195. 2510  X = X + 1
  196. 2520  WEND
  197. 2530  X = 1
  198. 2540  WHILE X < 51
  199. 2550  INPUT #1,CATAGORY#(X)
  200. 2560  X = X + 1
  201. 2570  WEND
  202. 2580  '
  203. 2590  CLOSE #1
  204. 2600  '
  205. 2610  LOCATE 24,1
  206. 2620  PRINT "FILE READ COMPLETED - PRESS ANY KEY TO RETURN TO MENU -";
  207. 2630  A$ = INKEY$ : IF A$ = "" THEN 2630
  208. 2640  CLS : GOTO 100
  209. 3000  '
  210. 3010  CLS : SCREEN 0 : WIDTH 80
  211. 3020  CATAGORY#(45) = BALANCE#
  212. 3030  PRINT "************************************************************
  213. 3040  PRINT "* ******************************************************** *
  214. 3050  PRINT "* * **************************************************** * *
  215. 3060  PRINT "* * **                 SAVE OUTPUT FILE               ** * *
  216. 3070  PRINT "* * **************************************************** * *
  217. 3080  PRINT "* ******************************************************** *
  218. 3090  PRINT "************************************************************
  219. 3100  '
  220. 3110  LOCATE 9,1
  221. 3120  PRINT "ENTER THE MONTH OF THIS STATEMENT ":PRINT
  222. 3130  PRINT "JANUARY     = DEFDBL  1 DEFSNG"
  223. 3140  PRINT "FEBUARY     = DEFDBL  2 DEFSNG"
  224. 3150  PRINT "MARCH       = DEFDBL  3 DEFSNG"
  225. 3160  PRINT "APRIL       = DEFDBL  4 DEFSNG"
  226. 3170  PRINT "MAY         = DEFDBL  5 DEFSNG"
  227. 3180  PRINT "JUNE        = DEFDBL  6 DEFSNG"
  228. 3190  PRINT "JULY        = DEFDBL  7 DEFSNG"
  229. 3200  PRINT "AUGUST      = DEFDBL  8 DEFSNG"
  230. 3210  PRINT "SEPTEMBER   = DEFDBL  9 DEFSNG"
  231. 3220  PRINT "OCTOBER     = DEFDBL 10 DEFSNG"
  232. 3230  PRINT "NOVEMBER    = DEFDBL 11 DEFSNG"
  233. 3240  PRINT "DECEMBER    = DEFDBL 12 DEFSNG" : LOCATE 9,40 : PRINT ">>>>  ";
  234. 3250  '
  235. 3260  INPUT MONTH:IF (MONTH > 12) OR (MONTH < 1) THEN CLS : GOTO 3000
  236. 3270  LOCATE 10,40 : CLOSE
  237. 3280  ON MONTH GOTO 3300,3310,3320,3330,3340,3350,3360,3370,3380,3390,3400,3410
  238. 3290  '
  239. 3300  OPEN "JANUARY " FOR OUTPUT AS #1 : PRINT "WRITING JANUARY     ":GOTO 3420
  240. 3310  OPEN "FEBUARY " FOR OUTPUT AS #1 : PRINT "WRITING FEBUARY     ":GOTO 3420
  241. 3320  OPEN "MARCH   " FOR OUTPUT AS #1 : PRINT "WRITING MARCH       ":GOTO 3420
  242. 3330  OPEN "APRIL   " FOR OUTPUT AS #1 : PRINT "WRITING APRIL       ":GOTO 3420
  243. 3340  OPEN "MAY     " FOR OUTPUT AS #1 : PRINT "WRITING MAY         ":GOTO 3420
  244. 3350  OPEN "JUNE    " FOR OUTPUT AS #1 : PRINT "WRITING JUNE        ":GOTO 3420
  245. 3360  OPEN "JULY    " FOR OUTPUT AS #1 : PRINT "WRITING JULY        ":GOTO 3420
  246. 3370  OPEN "AUGUST  " FOR OUTPUT AS #1 : PRINT "WRIRING AUGUST      ":GOTO 3420
  247. 3380  OPEN "SEPTEMBE" FOR OUTPUT AS #1 : PRINT "WRITING SEPTEMBER   ":GOTO 3420
  248. 3390  OPEN "OCTOBER " FOR OUTPUT AS #1 : PRINT "WRITING OCTOBER     ":GOTO 3420
  249. 3400  OPEN "NOVEMBER" FOR OUTPUT AS #1 : PRINT "WRITING NOVEMBER    ":GOTO 3420
  250. 3410  OPEN "DECEMBER" FOR OUTPUT AS #1 : PRINT "WRITING DECEMBER    ":GOTO 3420
  251. 3420  'colection point for BASIC DEFDBL CASE DEFSNG STATEMENT
  252. 3430  WRITE #1,LASTENTRY
  253. 3440  X = 1
  254. 3450  WHILE X < LASTENTRY +1
  255. 3460  WRITE #1,CHECK%(X),DATES$(X),AMOUNT#(X)
  256. 3470  X = X + 1
  257. 3480  WEND
  258. 3490  X = 1
  259. 3500  WHILE X < 51
  260. 3510  PRINT #1,CATAGORY#(X)
  261. 3520  X = X + 1
  262. 3530  WEND
  263. 3540  '
  264. 3550  CLOSE #1
  265. 3560  '
  266. 3570  LOCATE 24,1
  267. 3580  PRINT "FILE WRITE COMPLETED - PRESS ANY KEY TO RETURN TO MENU -";
  268. 3590  A$ = INKEY$ : IF A$ = "" THEN 3590
  269. 3600  RUN
  270. 4000  '
  271. 4010  CLS : SCREEN 0 : WIDTH 80
  272. 4020  '
  273. 4030  PRINT "************************************************************
  274. 4040  PRINT "* ******************************************************** *
  275. 4050  PRINT "* * **************************************************** * *
  276. 4060  PRINT "* * **            EXPENSE CATAGORY REVIEW             ** * *
  277. 4070  PRINT "* * **************************************************** * *
  278. 4080  PRINT "* ******************************************************** *
  279. 4090  PRINT "************************************************************
  280. 4100  '
  281. 4110  LOCATE 9,1
  282. 4120  FOR X = 1 TO 45 : PRINT A$(X) ,: NEXT
  283. 4130  LOCATE 25,1
  284. 4140  PRINT "PRESS ANY KEY TO CONTINUE -";
  285. 4150  A$ = INKEY$ : IF A$ = "" THEN 4150
  286. 4160  CLS : GOTO 100
  287. 5000  '
  288. 5010  CLS : SCREEN 0 : WIDTH 80
  289. 5020  '
  290. 5030  PRINT "************************************************************
  291. 5040  PRINT "* ******************************************************** *
  292. 5050  PRINT "* * **************************************************** * *
  293. 5060  PRINT "* * **                PROGRAM TERMINATION             ** * *
  294. 5070  PRINT "* * **************************************************** * *
  295. 5080  PRINT "* ******************************************************** *
  296. 5090  PRINT "************************************************************
  297. 5100  '
  298. 5110  LOCATE 9,1
  299. 5120  PRINT "HAVE YOU SAVED THE UPDATED FILE ONTO TAPE ? (Y) OR (N) ..."
  300. 5130  A$ = INKEY$ : IF A$ = "" THEN 5130
  301. 5140  IF A$ = "N" THEN 3000
  302. 5150  PRINT FRE(X)
  303. 5160  LOCATE 20,1:KEY ON:CLEAR
  304. 6000  '
  305. 6010  CLS : SCREEN 0 : WIDTH 80 : CLOSE
  306. 6020  '
  307. 6030  PRINT "************************************************************
  308. 6040  PRINT "* ******************************************************** *
  309. 6050  PRINT "* * **************************************************** * *
  310. 6060  PRINT "* * **                   FILE UPDATE                  ** * *
  311. 6070  PRINT "* * **************************************************** * *
  312. 6080  PRINT "* ******************************************************** *
  313. 6090  PRINT "************************************************************
  314. 6100  '
  315. 6110  '******************** FIND OUT IF THERE ARE ENTRIES TO DELETE
  316. 6120  PRINT "DO YOU HAVE ANY CANCELLED CHECKS OR DEP-W/D RECIEPTS TO BE
  317. 6130  INPUT "DELETED FROM THE LISTING ? (1=YES 2=NO) ";A
  318. 6140  IF A = 1 THEN 6170
  319. 6150  IF A = 2 THEN 6980
  320. 6160  GOTO 6000
  321. 6170  '******************** DELETE THE APPROPIATE ENTRIES
  322. 6180  CLS
  323. 6190  PRINT "DELETION BEGINS WITH CHECKS
  324. 6200  PRINT "PLEASE ENTER THE CHECK NUMBERS - (1 TO 32700 ONLY)"
  325. 6210  PRINT "AND IF (C)ORRECT OR (I)NCORRECT
  326. 6220  LOCATE 25,1
  327. 6230  A% = 0
  328. 6240  POINTER = 1
  329. 6250  PRINT "ENTER A NEGATIVE NUMBER TO TERMINATE ";
  330. 6260  LOCATE 5,1
  331. 6270  WHILE A% >= 0
  332. 6280  PRINT
  333. 6290  INPUT; A%
  334. 6300  IF (A%<=0) OR (A%>32700) THEN PRINT : GOTO 6270
  335. 6310  GOSUB 6350
  336. 6320  WEND
  337. 6330  GOSUB 6850
  338. 6340  GOTO 6520
  339. 6350  '******************** SUBROUTINE TO FIND AND DELETE CHECKS
  340. 6360  X% = 1
  341. 6370  IF X% > LASTENTRY THEN PRINT : PRINT "UNABLE TO FIND ENTRY "; : RETURN
  342. 6380  IF CHECK%(X%) <> A% THEN X% = X% + 1 : GOTO 6370
  343. 6390  LOCATE ,10
  344. 6400  PRINT DATES$(X%);                        ' PRINT THE DATE
  345. 6410  LOCATE ,20
  346. 6420  PRINT USING "$$#######,.##" ; AMOUNT#(X%); ' AMOUNT
  347. 6430  LOCATE ,40
  348. 6440  INPUT; "(C)ORRECT OR (I)NCORRECT - ";A$
  349. 6450  IF MID$(A$,1,1) = "C" THEN 6490
  350. 6460  IF MID$(A$,1,1) = "c" THEN 6490
  351. 6470  PRINT : PRINT "ENTRY NOT DELETED : PLEASE ENTER NEXT CHECK NUMBER ";
  352. 6480  RETURN
  353. 6490  CHECK%(X%) = 0 : DATES$(X%) = "     " : AMOUNT#(X%) = 0
  354. 6500  CODE%(X%) = 0 : DESCRIPT$(X%) = SPACE$(20)
  355. 6510  RETURN
  356. 6520  '******************** DELETE THE DEPOSITS AND WITHDRAWLS
  357. 6530  GOSUB 7460 ' 2 sec delay
  358. 6540  MARKER = 0
  359. 6550  FOR X% = 1 TO LASTENTRY
  360. 6560  IF CHECK%(X%) > 32700 THEN MARKER = 1
  361. 6570  NEXT X%
  362. 6580  IF MARKER = 0 THEN GOTO 6980 ' if no dep-w/d goto insert section
  363. 6590  CLS
  364. 6600  PRINT "DELETION CONTINUES WITH WITHDRAWLS AND DEPOSITS
  365. 6610  PRINT "PLEASE CHECK THE LISTING AND DECIDE IF YOU WANT TO"
  366. 6620  PRINT "(D)ELETE IT OR (L)EAVE IT ALONE
  367. 6630  LOCATE 5,1
  368. 6640  FOR X% = 1 TO LASTENTRY
  369. 6650  IF CHECK%(X%) > 32700 THEN GOSUB 6690
  370. 6660  NEXT X%
  371. 6670  GOSUB 6850
  372. 6680  GOTO 6980
  373. 6690  '******************** SUBROUTINE TO DELETE THE DEPOSIT OR WITHDRAWL
  374. 6700  IF CHECK%(X%) = 32750 THEN PRINT "WITHDRAWL       ";
  375. 6710  IF CHECK%(X%) = 32760 THEN PRINT "DEPOSIT         ";
  376. 6720  LOCATE ,15
  377. 6730  PRINT DATES$(X%);
  378. 6740  LOCATE ,25
  379. 6750  PRINT USING "$$#######,.##" ; AMOUNT#(X%); ' AMOUNT
  380. 6760  LOCATE ,45
  381. 6770  INPUT "(D)ELETE  OR (L)EAVE ALONE ";A$
  382. 6780  IF MID$(A$,1,1) = "D" THEN 6820
  383. 6790  IF MID$(A$,1,1) = "d" THEN 6820
  384. 6800  PRINT : PRINT "ENTRY NOT DELETED "
  385. 6810  RETURN
  386. 6820  CHECK%(X%) = 0 : DATES$(X%) = "     " : AMOUNT#(X%) = 0
  387. 6830  CODE%(X%) = 0 : DESCRIPT$(X%) = SPACE$(20)
  388. 6840  RETURN
  389. 6850  '******************** ROUTINE TO PACK ALL DELETED ENTRIES IN ARRAY
  390. 6860  X% = 1
  391. 6870  IF X% > LASTENTRY THEN RETURN
  392. 6880  IF CHECK%(X%) <> 0 THEN X% = X% + 1 : GOTO 6870
  393. 6890  FOR Y% = X% TO LASTENTRY - 1
  394. 6900  CHECK%(Y%) = CHECK%(Y%+1)
  395. 6910  DATES$(Y%) = DATES$(Y%+1)
  396. 6920  AMOUNT#(Y%) = AMOUNT#(Y%+1)
  397. 6930  CODE%(Y%) = CODE%(Y%+1)
  398. 6940  DESCRIPT$(Y%) = DESCRIPT$(Y%+1)
  399. 6950  NEXT Y
  400. 6960  LASTENTRY = LASTENTRY - 1
  401. 6970  GOTO 6870
  402. 6980  '******************** ROUTINE TO ENTER NEW CHECKS OR DEP's OR W/D's
  403. 6990  CLS : PRINT "NEW ENTRIES SECTION " : PRINT
  404. 7000  PRINT "ENTER  1. CHECK NUMBER (1 THRU 32700) OR
  405. 7010  PRINT "          (D) FOR DEPOSIT OR
  406. 7020  PRINT "          (W) FOR WITHDRAWL
  407. 7030  PRINT "       2. THE DATE AS MM/DD
  408. 7040  PRINT "       3. THE AMOUNT
  409. 7050  PRINT "       4. THE CATAGORY CODE
  410. 7060  PRINT "       5. THE DISCRIPTION
  411. 7070  LOCATE 25,1
  412. 7080  PRINT "ENTER A NEGATIVE CHECK NUMBER TO RETURN TO THE MENU ";
  413. 7090  LOCATE 10,1
  414. 7100  INPUT "CHECK NUMBER OR (D)EPOSIT OR (W)ITHDRAWL - ";C$
  415. 7110  C% = VAL(C$)
  416. 7120  IF C% > 32765 THEN 6990 'out of range - try again
  417. 7130  IF C% > 0 THEN A1% = C% : GOTO 7200
  418. 7140  IF C% < 0 THEN 7830 ' neg means to exit
  419. 7150  IF ASC(C$)=68  THEN A1% = 32760 : GOTO 7200
  420. 7160  IF ASC(C$)=100 THEN A1% = 32760 : GOTO 7200
  421. 7170  IF ASC(C$)=87  THEN A1% = 32750 : GOTO 7200
  422. 7180  IF ASC(C$)=119 THEN A1% = 32750 : GOTO 7200
  423. 7190  GOTO 6990 ' invalid input
  424. 7200  LOCATE 12,1
  425. 7210  INPUT "THE DATE AS MM/DD                        - ";D$
  426. 7220  IF LEN(D$) = 5 THEN GOTO 7240
  427. 7230  A$ = STRING$(79,32) : LOCATE 12,1 : PRINT A$ : GOTO 7200
  428. 7240  A2$ = D$
  429. 7250  LOCATE 14,1
  430. 7260  INPUT "THE AMOUNT FROM $.00 TO $9,999,999.99 - ";E$
  431. 7270  IF VAL(E$) < 1E+07 THEN GOTO 7290
  432. 7280  A$ = STRING$(79,32) : LOCATE 14,1 : PRINT A$ : GOTO 7250
  433. 7290  A3# = VAL(E$)
  434. 7300  LOCATE 16,1
  435. 7310  INPUT "THE CATAGORY CODE                        - ";F$
  436. 7320  IF (VAL(F$)>0) AND (VAL(F$)<46) THEN 7340
  437. 7330  A$ = STRING$(79,32) : LOCATE 16,1 : PRINT A$ : GOTO 7300
  438. 7340  A4% = VAL(F$)
  439. 7350  LOCATE 18,1
  440. 7360  PRINT "DESCRIPTION USING UP TO 20 CHARACTERS    - "
  441. 7370  PRINT "DO NOT ENTER DESCRIPTION PAST THE MARKER   "
  442. 7380  PRINT "                      <<<<<<<<<<<<<<<<<<<<<< "
  443. 7390  INPUT G$
  444. 7400  IF LEN(G$) < 21 THEN GOTO 7420
  445. 7410  A$ = STRING$(79,32) : LOCATE 21,1 : PRINT A$ : GOTO 7350
  446. 7420  A5$ = G$
  447. 7430  GOSUB 7450
  448. 7440  GOTO 7530
  449. 7450  '******************** WAIT 2 SECONDS BEFORE CLEARING THE SCREEN
  450. 7460  FOR X = 1 TO 2
  451. 7470  Z$ = TIME$
  452. 7480  WHILE Z$ = TIME$
  453. 7490  WEND
  454. 7500  NEXT X
  455. 7510  CLS
  456. 7520  RETURN
  457. 7530  '******************** DISPLAY CHECK FOR APPROVAL
  458. 7540  LOCATE 5,1
  459. 7550  IF A1% = 32760 THEN PRINT "DEPOSIT  " : GOTO 7580
  460. 7560  IF A1% = 32750 THEN PRINT "WITHDRAWL" : GOTO 7580
  461. 7570  PRINT A1%
  462. 7580  LOCATE 5,11
  463. 7590  PRINT A2$                              ' DATE
  464. 7600  LOCATE 5,17
  465. 7610  PRINT A5$                              ' DESCRIPTION
  466. 7620  LOCATE 5,38
  467. 7630  PRINT USING "$$#######,.##";A3#        ' AMOUNT
  468. 7640  LOCATE 5,53
  469. 7650  PRINT "CATAGORY CODE = ";A4%
  470. 7660  LOCATE 10,1
  471. 7670  PRINT "IS THIS CORRECT (Y)ES OR (N)O  - ";
  472. 7680  INPUT A$
  473. 7690  IF (A$ = "Y") OR (A$ = "y") THEN GOTO 7730
  474. 7700  CLS : PRINT ">>>>> CHECK NOT ENTERED <<<<< "
  475. 7710  GOSUB 7450                                   ' delay
  476. 7720  GOTO 7000                                    ' insert section / no cls
  477. 7730  '******************** ENTER CORRECT CHECK INTO FILE
  478. 7740  CATAGORY#(A4%) = CATAGORY#(A4%) + A3#
  479. 7750  LASTENTRY = LASTENTRY + 1
  480. 7760  CHECK%(LASTENTRY)    = A1%
  481. 7770  DATES$(LASTENTRY)     = A2$
  482. 7780  AMOUNT#(LASTENTRY)   = A3#
  483. 7790  CODE%(LASTENTRY)     = A4%
  484. 7800  DESCRIPT$(LASTENTRY) = A5$
  485. 7810  GOSUB 7450                                   ' delay
  486. 7820  GOTO 6980                                    ' top of insert section
  487. 7830  '******************** ROUTINE TO PRINT OUT ALL CHECKS
  488. 7840  CLS : PRINTOUT = 0 : SCREENOUT = 0 : BALANCE# = CATAGORY#(45)
  489. 7850  PRINT "WOULD YOU LIKE A PRINTOUT OF THE UPDATED FILE ?
  490. 7860  INPUT "(Y)ES OR (N)O - ",A$
  491. 7870  IF MID$(A$,1,1) = "Y" THEN OPEN "LPT1:" FOR OUTPUT AS #1 : PRINTOUT = 1
  492. 7880  IF MID$(A$,1,1) = "y" THEN OPEN "LPT1:" FOR OUTPUT AS #1 : PRINTOUT = 1
  493. 7890  LOCATE 4,1
  494. 7900  PRINT "WOULD YOU LIKE A SCREEN LISTING OF THE UPDATED FILE ?
  495. 7910  INPUT "(Y)ES OR (N)O - ",A$
  496. 7920  IF MID$(A$,1,1) = "Y" THEN OPEN "SCRN:" FOR OUTPUT AS #2 : SCREENOUT = 1
  497. 7930  IF MID$(A$,1,1) = "y" THEN OPEN "SCRN:" FOR OUTPUT AS #2 : SCREENOUT = 1
  498. 7940  GOSUB 7450                                   ' delay
  499. 7950  MARKER = 0
  500. 7960  FOR X = 1 TO LASTENTRY
  501. 7970  B% = CODE%(X)
  502. 7980  IF B% = 0 THEN 8020                          ' if printing old listing -
  503. 7990  IF MARKER = 1 THEN 8020                      ' if bal-fwd already printed
  504. 8000  PRINT : PRINT "BALANCE FORWARD FROM LAST UPDATE = ";CATAGORY#(45): PRINT
  505. 8010  PRINT : MARKER = 1
  506. 8020  '******************** ROUTINE TO PRINT STRING
  507. 8030  A1% = CHECK%(X)
  508. 8040  A2$ = DATES$(X)
  509. 8050  A3# = AMOUNT#(X)
  510. 8060  A4% = CODE%(X)
  511. 8070  A5$ = DESCRIPT$(X)
  512. 8080  '******************** PRINT CHECK NUMBER / DEP / W/D
  513. 8090  IF PRINTOUT <> 1 THEN 8140
  514. 8100  IF A1% < 32700 THEN PRINT #1,USING "######";A1%;
  515. 8110  IF A1% = 32760 THEN PRINT #1,"DEP   ";
  516. 8120  IF A1% = 32750 THEN PRINT #1,"W/D   ";
  517. 8130  PRINT #1," ";
  518. 8140  IF SCREENOUT <> 1 THEN 8190
  519. 8150  IF A1% < 32700 THEN PRINT #2,USING "######";A1%;
  520. 8160  IF A1% = 32760 THEN PRINT #2,"DEP   ";
  521. 8170  IF A1% = 32750 THEN PRINT #2,"W/D   ";
  522. 8180  PRINT #2," ";
  523. 8190  '******************** PRINT DATE
  524. 8200  IF PRINTOUT <> 1 THEN 8220
  525. 8210  PRINT #1,A2$;" ";
  526. 8220  IF SCREENOUT <> 1 THEN 8240
  527. 8230  PRINT #2,A2$;" ";
  528. 8240  '******************** PRINT DESCRIPTION
  529. 8250  C$ = SPACE$(20) : LSET C$ = A5$
  530. 8260  IF PRINTOUT <> 1 THEN 8280
  531. 8270  PRINT #1,C$;" ";
  532. 8280  IF SCREENOUT <> 1 THEN 8300
  533. 8290  PRINT #2,C$;" ";
  534. 8300  GOTO 8370
  535. 8310  '******************** PRINT SPACES IF NO DESCRIPTION
  536. 8320  C$ = SPACE$(20)
  537. 8330  IF PRINTOUT <> 1 THEN 8350
  538. 8340  PRINT #1,C$;" ";
  539. 8350  IF SCREENOUT <> 1 THEN 8370
  540. 8360  PRINT #2,C$;" ";
  541. 8370  '******************** PRINT CATAGORY CODE
  542. 8380  IF PRINTOUT <> 1 THEN 8410
  543. 8390  PRINT #1,USING "##";A4%;
  544. 8400  PRINT #1," ";
  545. 8410  IF SCREENOUT <> 1 THEN 8440
  546. 8420  PRINT #2,USING "##";A4%;
  547. 8430  PRINT #2," ";
  548. 8440  GOTO 8500
  549. 8450  '******************** PRINT SPACES IF NO CATAGORY CODE
  550. 8460  IF PRINTOUT <> 1 THEN 8480
  551. 8470  PRINT #1,"   "; ' 3 SPACES
  552. 8480  IF SCREENOUT <> 1 THEN 8500
  553. 8490  PRINT #2,"   "; ' 3 SPACES
  554. 8500  '******************** PRINT AMOUNT
  555. 8510  IF PRINTOUT <> 1 THEN 8530
  556. 8520  PRINT #1,USING "$$#######.## ";A3#;
  557. 8530  IF SCREENOUT <> 1 THEN 8550
  558. 8540  PRINT #2,USING "$$#######.## ";A3#;
  559. 8550  '******************** PRINT BALANCE
  560. 8560  IF A4% = 0 THEN 8630
  561. 8570  IF A1% = 32760 THEN BALANCE# = BALANCE# + A3# : GOTO 8590
  562. 8580  BALANCE# = BALANCE# - A3#
  563. 8590  IF PRINTOUT <> 1 THEN 8610
  564. 8600  PRINT #1,USING "$$########.##- ";BALANCE#;
  565. 8610  IF SCREENOUT <> 1 THEN 8630
  566. 8620  PRINT #2,USING "$$########.##- ";BALANCE#;
  567. 8630  '******************** PRINT CARRAGE RETURN AND END LOOP
  568. 8640  IF PRINTOUT <> 1 THEN 8660
  569. 8650  PRINT #1," "
  570. 8660  IF SCREENOUT <> 1 THEN 8680
  571. 8670  PRINT #2," "
  572. 8680  NEXT X
  573. 8690  '
  574. 8700  '******************** PRINT FINAL BALANCE
  575. 8710  PRINT
  576. 8720  IF PRINTOUT <> 1 THEN 8740
  577. 8730  PRINT #1,"FINAL BALANCE = ";BALANCE#
  578. 8740  IF SCREENOUT <> 1 THEN 8760
  579. 8750  PRINT #2,"FINAL BALANCE = ";BALANCE#
  580. 8760  '
  581. 8770  PRINT : PRINT
  582. 8780  PRINT "PRESS ENTER TO CONTINUE - "
  583. 8790  PRINT : PRINT : PRINT
  584. 8800  POKE 106,0
  585. 8810  A$ = INKEY$ : IF A$ = "" THEN 8810
  586. 8820  '
  587. 8830  IF PRINTOUT <> 1 THEN 8870
  588. 8840  FOR X = 1 TO 45
  589. 8850  PRINT #1,A$(X),CATAGORY#(X)
  590. 8860  NEXT X
  591. 8870  IF SCREENOUT <> 1 THEN 8930
  592. 8880  FOR X = 1 TO 45
  593. 8890  PRINT #2,A$(X),CATAGORY#(X)
  594. 8900  NEXT X
  595. 8910  '
  596. 8920  PRINT : PRINT
  597. 8930  PRINT "PRESS ENTER TO RETURN TO MENU - "
  598. 8940  A$ = INKEY$ : IF A$ = "" THEN 8940
  599. 8950  GOTO 100
  600.